package cn.kgc.springmvc01.servlet;

import cn.kgc.springmvc01.entity.User;
import cn.kgc.springmvc01.service.UserService;
import cn.kgc.springmvc01.service.impl.UserServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @author: mosin
 * @version: v1.0  2022/12/8
 * servlet 作为控制层存在的问题
 * 1.接收的参数全部是String类型 不能接收对象类型的参数 接收参数方式存在代码冗余
 * 2.如何需要其它类型的数据 需要进行强制类型转换
 * 3.跳转的路径存在耦合  （路径耦合，视图耦合）
 *
 * 4.中文乱码 req.setCharacterEncoding();  ->  过滤器  Filter
 * 5.一个servlet只能处理一个请求  需要编写多个servlet处理不同的请求路径
 *
 */
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {

    private UserService userService = new UserServiceImpl();

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {


        //接收请求参数
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        Integer age = Integer.valueOf(req.getParameter("age"));
        //......

        User user = new User();
        user.setPassword(password);
        user.setUsername(username);
        user.setAge(age);

        // 调用业务登录方法 实现登录操作
        Boolean login = userService.login(user);

        // 页面的跳转

        if(login){
            resp.sendRedirect("/index.jsp");
        }else {
            req.getRequestDispatcher("/login.jsp").forward(req, resp);
        }
    }
}
